package com.genexususa.eo.google.data;

import javax.xml.bind.annotation.*;
import javax.xml.stream.Location;
import java.util.ArrayList;

/**
 * Created with IntelliJ IDEA.
 * User: Emiliano Martinez
 * Date: 2/13/13
 * Time: 6:57 PM
 * To change this template use File | Settings | File Templates.
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class CampaignReport {

    @XmlElement(name = "AdServingOptimizationStatus")
    public String AdServingOptimizationStatus;

    @XmlElement(name = "BidCeiling")
    public Double BidCeiling;

    @XmlElement(name = "BiddingStrategyType")
    public String BiddingStrategyType;

    @XmlElement(name = "BidType")
    public String BidType;

    @XmlElement(name = "BudgetId")
    public Long BudgetId;

    @XmlElement(name = "ChangeStatus")
    public String ChangeStatus;

    @XmlElement(name = "EndDate")
    public String EndDate;

    @XmlElement(name = "EnhancedCpcEnabled")
    public boolean EnhancedCpcEnabled;

    @XmlElement(name = "FrequencyCapMaxImpressions")
    public Long FrequencyCapMaxImpressions;

    @XmlElement(name = "Id")
    public Long Id;

    @XmlElement(name = "Level")
    public String Level;

    @XmlElement(name = "Name")
    public String Name;

    @XmlElement(name = "PricingMode")
    public String PricingMode;

    @XmlElement(name = "StartDate")
    public String StartDate;

    @XmlElement(name = "Status")
    public String Status;

    @XmlElement(name = "TargetContentNetwork")
    public boolean TargetContentNetwork;

    @XmlElement(name = "TargetGoogleSearch")
    public boolean TargetGoogleSearch;

    @XmlElement(name = "TargetPartnerSearchNetwork")
    public boolean TargetPartnerSearchNetwork;

    @XmlElement(name = "TargetSearchNetwork")
    public boolean TargetSearchNetwork;

    @XmlElement(name = "TimeUnit")
    public String TimeUnit;

    @XmlElement(name = "GeoTargetNegativeType")
    public String GeoTargetNegativeType;

    @XmlElement(name = "GeoTargetPositiveType")
    public String GeoTargetPositiveType;

    @XmlElement(name = "KeywordMatch")
    public boolean KeywordMatch;

    @XmlElement(name = "RealTimeBidding")
    public boolean RealTimeBidding;

    @XmlElement(name = "BiddingStrategyId")
    public Long BiddingStrategyId;

    @XmlElement(name = "BiddingStrategyName")
    public String BiddingStrategyName;

    @XmlElement(name = "AdvertisingChannelType")
    public String AdvertisingChannelType;

    @XmlElement(name = "SyncStatus")
    public String SyncStatus;


    /********** ngonzalez | 11.25.2013 | Collections  ************/
    @XmlElementWrapper(name = "AdGroups")
    @XmlElement(name = "AdGroup")
    public ArrayList<AdGroupReport> AdGroups;

    @XmlElementWrapper(name = "ExtensionLocations")
    @XmlElement(name = "ExtensionLocation")
    public ArrayList<AdExtensionLocationReport> ExtensionLocations;

    @XmlElementWrapper(name = "MobileExtensions")
    @XmlElement(name = "MobileExtension")
    public ArrayList<AdExtensionMobileReport> MobileExtensions;

    @XmlElementWrapper(name = "SitelinksExtensions")
    @XmlElement(name = "SitelinksExtension")
    public ArrayList<AdExtensionSitelinksReport> SitelinksExtensions;

    @XmlElementWrapper(name = "Languages")
    @XmlElement(name = "Language")
    public  ArrayList<LanguageReport> Languages;

    @XmlElementWrapper(name = "Platforms")
    @XmlElement(name = "Platform")
    public ArrayList<PlatformReport> Platforms;


    @XmlElementWrapper(name = "Keywords")
    @XmlElement(name = "Keyword")
    public ArrayList<KeywordReport> Keywords;

    @XmlElementWrapper(name = "AdSchedules")
    @XmlElement(name = "AdSchedule")
    public ArrayList<CampaignAdScheduleReport> AdSchedules;

    @XmlElementWrapper(name = "Proximities")
    @XmlElement(name = "Proximity")
    public ArrayList<ProximityReport> Proximities;

    @XmlElementWrapper(name = "Locations")
    @XmlElement(name = "Location")
    public ArrayList<LocationReport> Locations;
    /********************************************************************************/

    public CampaignReport(){
        AdGroups = new ArrayList<AdGroupReport>();
        ExtensionLocations = new ArrayList<AdExtensionLocationReport>();
        MobileExtensions = new ArrayList<AdExtensionMobileReport>();
        SitelinksExtensions = new ArrayList<AdExtensionSitelinksReport>();
        Languages = new ArrayList<LanguageReport>();
        Platforms = new ArrayList<PlatformReport>();
        Keywords = new ArrayList<KeywordReport>();
        AdSchedules = new ArrayList<CampaignAdScheduleReport>();
        Proximities = new ArrayList<ProximityReport>();
        Locations = new ArrayList<LocationReport>();
    }



}
